.TH ELF_CNTL 3 2025-06-17 "Libelf" "Libelf Programmer's Manual"

.SH NAME
elf_cntl \- perform control operations on an ELF descriptor

.SH SYNOPSIS
.nf
#include <libelf.h>

int elf_cntl(Elf *elf, Elf_Cmd cmd);
.fi
.SH DESCRIPTION
Perform control operations on the ELF descriptor
.I elf
according to the operation specified by
.IR cmd .

The following commands are supported:

.TP
.B ELF_C_FDDONE
This command tells
.B libelf
that the application is done using the file descriptor associated with the
.I elf
object. The file descriptor may then be closed immediately without affecting the
in-memory ELF data.  Unless all data has been read from the file descriptor (see
.B ELF_C_FDREAD
below) future operation on the Elf descriptor may fail.

.TP
.B ELF_C_FDREAD
This command causes
.B libelf
to read the entire contents of the underlying file into memory immediately.
.B libelf
generally reads and parses elements of ELF files only when they are required.
This command instead triggers
.B libelf
to read all elements immediately. Using this command ensures that
.B ELF_C_FDDONE
may be used without causing future operations on the Elf descriptor to fail.

.SH RETURN VALUE
On success, returns 0.

On failure, it returns \-1 and sets an error that can be retrieved with
.BR elf_errmsg (3).


.SH SEE ALSO
.BR libelf (3),
.BR elf_errmsg (3),
.BR elf (5)

.SH ATTRIBUTES
.TS
allbox;
lbx lb lb
l l l.
Interface       Attribute       Value
T{
.na
.nh
.BR elf_cntl ()
T}      Thread safety   MT-Safe
.TE

.SH REPORTING BUGS
Report bugs to <elfutils-devel@sourceware.org> or https://sourceware.org/bugzilla/.
